home *** CD-ROM | disk | FTP | other *** search
- #ifndef SDI_DEFINES_H
- #define SDI_DEFINES_H
-
- /* Includeheader
-
- Name: SDI_defines
- Versionstring: $VER: SDI_defines.h 1.24 (17.03.97)
- Author: SDI
- Distribution: PD
- Description: standard defines and macros and version string
-
- 1.0 : created with help of ...SDI.h files
- 1.1 : SDI_ERROR added
- 1.2 : made INFO's better
- 1.3 : removed SDI_ERROR
- 1.4 : INFO_ERR corrected
- 1.5 : when DATE not defined, then DATE == __DATE2__ (Maxon C++)
- 1.6 : introduced DEBUG parts
- 1.7 : changed DEBUG's a bit
- 1.8 : OS_VERSION and TEST_OS added
- 1.9 10.08.95 : made OS_VERSION shorter
- 1.10 18.08.95 : DEBUG_BREAKS added
- 1.11 23.09.95 : NOVERSION added
- 1.12 15.10.95 : now STRPTR version
- 1.13 05.02.96 : isprintSDI, isHEXNum removed
- 1.14 13.04.96 : version string moved into header
- 1.15 28.05.96 : added ENDCODE
- 1.16 05.06.96 : Protos for End and extern definition for version also
- without defines, except with NOCODE define, TEST_OS, OS_VERSION
- removed
- 1.17 12.06.96 : RETURN_WARN instead of RETURN_ERROR in ENDCODE
- 1.18 06.07.96 : ENDCODE: PrintFault behind end --> allows selecting output
- 1.19 21.08.96 : added __SASC __AMIGADATE__ support
- 1.20 24.08.96 : better SAS-C support
- 1.21 04.09.96 : changed error with SAS date having the brackets already
- 1.22 18.11.96 : converted to english, C++ comments to C ones
- 1.23 02.01.97 : corrected some stuff
- 1.24 17.03.97 : removed GetChar and other obsolete defines
- */
-
- #include <exec/types.h>
-
- /* ======================= no need for <stdlib.h> ======================= */
-
- extern void exit(int);
-
- /* ============================ other macros ============================ */
-
- /* <pragma/exec_lib.h>, <dos/dos.h> */
-
- #define CTRL_C (SetSignal(0L,0L) & SIGBREAKF_CTRL_C)
-
- /* ======================= character definitions ======================== */
-
- #define BS 8
- #define ESC 27
-
- /* ================================= SAS C ============================== */
-
- #ifdef __SASC
- extern struct ExecBase *SysBase;
- extern struct DosLibrary *DOSBase;
- #include <dos/dosextens.h>
-
- #define TestOS if(DOSBase->dl_lib.lib_Version < DosVersion) \
- exit(RETURN_FAIL)
- #endif
-
- /* A word about variable DosVersion: In my startup code for MaxonC++ I
- include use OpenLibrary("dos.library", DosVersion) instead of standard
- OpenLibrary("dos.library",0) call. If no DosVersion is given, this
- variable defaults to 33, else you can give the value by creating a global
- variable ULONG DosVersion = 37;. The program does not start, when the
- required dos is not available. (Better then others, which crash) */
-
- /* ===================== version string and EndCode ===================== */
-
- #ifndef NOCODE
- extern STRPTR version; /* Proto for Version */
- extern void End(UBYTE); /* Proto for End */
-
- #if !defined(NOVERSION) && defined(NAME)
- #ifndef AUTHOR
- #define AUTHOR "by SDI"
- #endif
- #ifndef VERSION
- #define VERSION "1"
- #endif
- #ifndef REVISION
- #define REVISION "0"
- #endif
- #ifndef DATE
- #ifdef __MAXON__
- #define DATE __DATE2__
- #elif defined(__SASC)
- #define DATE __AMIGADATE__
- #endif
- #endif
- #ifdef __MAXON__
- #define SDI_DATE "(" DATE ")"
- #elif defined(__SASC)
- #define SDI_DATE DATE
- #endif
-
- #ifndef DISTRIBUTION
- #define DISTRIBUTION "(PD) "
- #endif
- STRPTR version = (STRPTR) "$VER: " NAME " " VERSION "." REVISION " "
- SDI_DATE " " DISTRIBUTION AUTHOR;
-
- #endif /* !NOVERSION && NAME */
-
- #if defined(ENDCODE) || defined(ENDCODE_NOCTRLC)
- #ifdef __MAXON__
- #define __inline
- inline
- #endif
- void __inline end(void);
- void End(UBYTE err)
- {
- #ifndef ENDCODE_NOCTRLC
- if(CTRL_C)
- {
- err = RETURN_WARN;
- SetIoErr(ERROR_BREAK);
- }
- #endif
-
- end();
-
- if(err) PrintFault(IoErr(), 0);
- exit(err);
- }
- #endif /* ENDCODE && ENDCODE_NOCTRLC */
- #endif /* NOCODE */
-
- #endif /* SDI_DEFINES_H */
-
-